package day013.IBatis_Spring;

import java.util.List;

import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;

/*
 * Spring + ibatis 연동
 * SqlMapClinetDaoSupport 클래스를 상속 받아서 Dao 구현 클래스를 작성한다.
 * 1. support 클래스가 SqlMapClientTemplate 객체를 제공해 준다.
 *    dao 구현 클래스에는 순수 CRUD 코드만 남는다. 
 *    (변수나 setter 메소드가 필요없어짐)
 * 2. 전제 조건: SqlMapClinetDaoSupport 를 상속 받고 
 *    Dao 구현 클래스에 SqlMapClient 객체를 주입해줘야 한다.
 *    (주입은 설정파일에서)
 */
public class DeptDaoImpl extends SqlMapClientDaoSupport implements DeptDao {

	@Override
	public Object add(DeptVO vo) {
		return getSqlMapClientTemplate().insert("add", vo);
	}

	@Override
	public int remove(int deptno) {
		return getSqlMapClientTemplate().delete("remove", deptno);
	}

	@Override
	public int update(DeptVO vo) {
		return getSqlMapClientTemplate().update("update", vo);
	}

	@Override
	public DeptVO info(int deptno) {
		return (DeptVO)getSqlMapClientTemplate().queryForObject("info", deptno);
	}

	@Override
	public List<DeptVO> list() {
		return getSqlMapClientTemplate().queryForList("list");
	}

}
